home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / SETUP / US / CBUILDER / DATA.Z / STDCOMP.H < prev    next >
C/C++ Source or Header  |  1997-02-13  |  34KB  |  1,153 lines

  1. #ifndef __STDRWCOMPILER_H__
  2. #define __STDRWCOMPILER_H__ 1
  3. /* $Revision:   8.3  $ */
  4.  
  5. /***************************************************************************
  6.  *
  7.  * Compiler and system related foibles and directives
  8.  *
  9.  * $Id: stdcomp.in,v 1.114 1995/10/03 17:26:32 smithey Exp $
  10.  *
  11.  ***************************************************************************
  12.  *
  13.  * (c) Copyright 1994, 1995 Rogue Wave Software, Inc.
  14.  * ALL RIGHTS RESERVED
  15.  *
  16.  * The software and information contained herein are proprietary to, and
  17.  * comprise valuable trade secrets of, Rogue Wave Software, Inc., which
  18.  * intends to preserve as trade secrets such software and information.
  19.  * This software is furnished pursuant to a written license agreement and
  20.  * may be used, copied, transmitted, and stored only in accordance with
  21.  * the terms of such license and with the inclusion of the above copyright
  22.  * notice.  This software and information or any other copies thereof may
  23.  * not be provided or otherwise made available to any other person.
  24.  *
  25.  * Notwithstanding any other lease or license that may pertain to, or
  26.  * accompany the delivery of, this computer software and information, the
  27.  * rights of the Government regarding its use, reproduction and disclosure
  28.  * are as set forth in Section 52.227-19 of the FARS Computer
  29.  * Software-Restricted Rights clause.
  30.  *
  31.  * Use, duplication, or disclosure by the Government is subject to
  32.  * restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
  33.  * Technical Data and Computer Software clause at DFARS 252.227-7013.
  34.  * Contractor/Manufacturer is Rogue Wave Software, Inc.,
  35.  * P.O. Box 2328, Corvallis, Oregon 97339.
  36.  *
  37.  * This computer software and information is distributed with "restricted
  38.  * rights."  Use, duplication or disclosure is subject to restrictions as
  39.  * set forth in NASA FAR SUP 18-52.227-79 (April 1985) "Commercial
  40.  * Computer Software-Restricted Rights (April 1985)."  If the Clause at
  41.  * 18-52.227-74 "Rights in Data General" is specified in the contract,
  42.  * then the "Alternate III" clause applies.
  43.  *
  44.  **************************************************************************/
  45.  
  46. /****************************************************************
  47.  ****************************************************************
  48.  *                                                              *
  49.  *              U S E R   T U N A B L E   S E C T I O N         *
  50.  *                                                              *
  51.  ****************************************************************
  52.  ****************************************************************/
  53.  
  54.  
  55. /*
  56.  * This section has various preprocessor constants that can
  57.  * be set to reflect the properties of your compiler.  For most
  58.  * compilers (particularly, MS-DOS compilers) there is no need
  59.  * to do anything --- most settings can be autodetected.
  60.  *
  61.  * For many Unix compilers you may have to tune the settings below.
  62.  * This is most easily done by running the "config" shell script
  63.  * which will try various test programs to discover the properties
  64.  * of your compiler.
  65.  *
  66.  *       THIS IS FAR EASIER THAN SETTING THESE BY HAND!
  67.  */
  68.  
  69. /*
  70.  *                   AT&T "CFRONT" USERS
  71.  */
  72.  
  73.  
  74. /*
  75.  * Most compilers have a built in "manifest constant".
  76.  * For the following compilers you must supply one by uncommenting
  77.  * an appropriate line:
  78.  *
  79.  *   AT&T cfront V2.X:       __ATT2__
  80.  *   AT&T cfront V3.0:       __ATT3__
  81.  */
  82.  
  83. /* #define __ATT2__ 1 */
  84. /* #define __ATT3__ 1 */
  85.  
  86. /**
  87.  **                     *** ALL USERS ***
  88.  **/
  89.  
  90.  
  91. #define RWSTD_NOMSG    0x00
  92. #define RWSTD_CATGETS  0x01
  93. #define RWSTD_GETTEXT  0x02
  94. #define RWSTD_DGETTEXT 0x03
  95.  
  96. /*
  97.  * Set RWSTD_MESSAGE to the type of messaging facility you want:
  98.  *   RWSTD_NOMSG         No messaging facility
  99.  *   RWSTD_CATGETS  Use catgets()
  100.  *   RWSTD_GETTEXT  Use gettext()
  101.  *   RWSTD_DGETTEXT Use dgettext()
  102.  */
  103.  
  104. #define RWSTD_MESSAGE RWSTD_NOMSG
  105.  
  106.  
  107. #if !defined( __TURBOC__) && !defined(_MSC_VER)
  108.  
  109. /******************** COMPILER WORD SIZES, ETC ********************/
  110.  
  111. /*
  112.  * Uncomment the following and set to the number of decimal digits
  113.  * of precision for type double.
  114.  * If you do nothing, the default will be 16.
  115.  */
  116.  
  117. /* #define RWSTD_DEFAULT_PRECISION 16 */
  118.  
  119.  
  120. /*************** COMPILER QUIRKS AND LIMITATIONS ******************/
  121.  
  122. /*
  123.  * Uncomment the following if your compiler does not support
  124.  * exceptions.
  125.  */
  126.  
  127. /* #define RWSTD_NO_EXCEPTIONS 1 */
  128.  
  129. /*
  130.  * Uncomment the following if your compiler does not support
  131.  * exceptions specifications.
  132.  */
  133.  
  134. /* #define RWSTD_NO_EX_SPEC 1 */
  135.  
  136.  
  137. /*
  138.  * Uncomment the following if your compiler does not support
  139.  * throwing of exceptions from a shared library.
  140.  */
  141.  
  142. /* #define RWSTD_NO_THROW_WITH_SHARED 1 */
  143.  
  144. /*************************** TEMPLATES **********************************/
  145.  
  146. /*
  147.  * Uncomment the following if your compiler does not instantiates only those
  148.  * functions, member functions, classes or member classes that are
  149.  * required; i.e. your compiler instantiates things that your program
  150.  * doesn't actually use.
  151.  */
  152.  
  153. /* #define RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE 1 */
  154.  
  155.  
  156. /*
  157.  * Uncomment the following if your compiler does template
  158.  * instantiation at compile time.
  159.  */
  160.  
  161. /* #define RWSTD_COMPILE_INSTANTIATE 1 */
  162.  
  163.  
  164. /*************************** STRINGS ****************************/
  165.  
  166. /*
  167.  * Uncomment the following if your sprintf() does not
  168.  * return the size of the buffer as an int, as ANSI C requires.
  169.  */
  170.  
  171. /* #define RWSTD_NO_ANSI_SPRINTF 1 */
  172.  
  173.  
  174. /*
  175.  * Uncomment the following if your compiler does not have the
  176.  * ANSI C function memmove().
  177.  */
  178.  
  179. /* #define RWSTD_NO_MEMMOVE 1 */
  180.  
  181.  
  182. /****************** INTERNATIONALIZATION ************************/
  183.  
  184. /*
  185.  * Uncomment the following if your compiler does not support
  186.  * wide characters strings (e.g., functions wslen(), etc.).
  187.  */
  188.  
  189. /* #define RWSTD_NO_WSTR 1 */
  190.  
  191.  
  192. /*
  193.  * Uncomment the following if the type wchar_t is just a typedef,
  194.  * instead of a distinct type.
  195.  */
  196.  
  197. /* #define RWSTD_NO_OVERLOAD_WCHAR 1 */
  198.  
  199.  
  200. /*
  201.  * Uncomment the following if your compiler does not support
  202.  * the ANSI C locale facility fully, or if it does not support
  203.  * it at all (in particular, uncomment if setlocale(), strxform(),
  204.  * or strcoll() are not present or don't work).
  205.  */
  206.  
  207. /* #define RWSTD_NO_LOCALE 1 */
  208.  
  209.  
  210. /*
  211.  * Uncomment the following if your compiler does not have
  212.  * the %C directive to strftime().
  213.  */
  214.  
  215. /* #define RWSTD_NO_STRFTIME_CAPC 1 */
  216.  
  217.  
  218. /************************** TIME ********************************/
  219.  
  220. /*
  221.  * Uncomment the following if your compiler does not have global
  222.  * variables "_daylight", "_timezone", and "_tzname", or corresponding
  223.  * variables without a leading underscore (generally
  224.  * this is true only for pure Berkeley systems).
  225.  */
  226.  
  227. /* #define RWSTD_NO_GLOBAL_TZ 1 */
  228.  
  229.  
  230. /*
  231.  * Uncomment the following if your system supplies a global variable
  232.  * named "daylight" instead of the nominally more correct "_daylight".
  233.  */
  234.  
  235. /* #define RWSTD_NO_LEADING_UNDERSCORE 1 */
  236.  
  237.  
  238. /*
  239.  * If your system does not have global variables "daylight" and
  240.  * "timezone" (see directive immediately above) and does not have
  241.  * the Berkeley function gettimeofday() either, then uncomment
  242.  * the following:
  243.  */
  244.  
  245. /* #define RWSTD_NO_GETTIMEOFDAY 1 */
  246.  
  247.  
  248. /*
  249.  * If the struct tm defined in your <time.h> has extra member data
  250.  * "tm_zone" and "tm_gmtoff" (this is true for SunOs 4.X), then you
  251.  * should uncomment the following:
  252.  */
  253.  
  254. /* #define RWSTD_STRUCT_TM_TZ 1 */
  255.  
  256. /************************** STANDARD LIBRARY ****************************/
  257.  
  258. /*
  259.  * Uncomment the following if your compiler does not support the bool type.
  260.  * This means that bool is not a unique type.
  261.  */
  262.  
  263. /* #define RWSTD_NO_BOOL 1 */
  264.  
  265. /*
  266.  * Uncomment the following if your compiler does not support default
  267.  * templates. e.g:
  268.  * template<class T = int> ...
  269.  */
  270.  
  271. /* #define RWSTD_NO_DEFAULT_TEMPLATES 1 */
  272.  
  273. /*
  274.  * Uncomment the following if your compiler doesn't support ~T()
  275.  * where T is a builtin.
  276.